Recent trends have shown that there are more applications, or apps, created to fulfill users' tasks. For example, various platforms (e.g., Apple®, Android®, and Microsoft®) have had exponential growth in their respective app stores and currently offer over 500,000 aggregate apps for their respective mobile devices. In spite of the growing use of applications, popular or relevant applications may be hard to discover. For example, The Windows® store and Xbox® stores support thousands of productivity and gaming applications.
Current technology directed at discovering similar applications include description-based filtering or co-purchase analysis. The description-based filtering has the promise of providing alternative apps that are similar. In this approach, the textual descriptions of the applications are compared for similarity. For instance, the number of matching words may be used as a similarity score among applications.
On the other hand, co-purchase analysis proposes apps that were purchased by other users along with the candidate or query apps. Application purchase data may be analyzed to compute a measure of similarity between applications. For instance, Jacard Similarity, a ratio of the number of users who purchased both items to the number of users who bought either of the items may be used to determine a similarity score from the co-purchase data. The co-purchase measure of similarity identifies applications that are complementary to one another (e.g., image capture application and image editing application).
These conventional approaches return reliable results for applications that have detailed descriptions or applications that have significant co-purchase information. Unfortunately, application descriptions may be misused or manipulated by developers to influence similarity proposals such that the developers' application is always included in a similar application result set. Co-purchase information is usually available only for the most popular items in an app store. Also, these two approaches tend to overlook applications that have sparse descriptions or little if any co-purchase information.